基於 STM32 的嵌入式系統應用

基於 STM32 的嵌入式系統應用

作者: 孫光
出版社: 人民郵電
出版在: 2019-09-01
ISBN-13: 9787115517999
ISBN-10: 7115517991





內容描述


本書介紹了意法半導體公司出品的基於Arm Cortex-M3內核的STM32F103微控制器在工程實踐中的應用。
全書分為基礎篇和應用篇。基礎篇介紹了嵌入式系統的基本概念、實訓使用的軟硬件平臺、STM32的標準外設庫、嵌入式C語言編程的特點、STM32系統時鐘、彩色LCD顯示基礎、字符編碼和顯示字庫等內容;應用篇依托STM32微控制器的主要外設、常用外圍器件以及典型應用等設計了11個實訓項目。
本書適合作為高職院校電子與控制類專業“嵌入式系統應用”等相關課程的教材,也可以作為工程技術人員學習STM32微控制器編程的快速入門參考書。


目錄大綱


基礎篇
第1章專題1——嵌入式系統概述2

1.1從單片機到嵌入式系統2

1.2精簡指令集計算機與復雜指令集計算機3

1.3普林斯頓結構和哈佛結構3

1.4 Arm公司及其微處理器4

1.5 Arm Cortex系列處理器5

1.6 STM32F103系列微控制器8

第2章專題2——實訓項目使用的軟硬件平台11

2.1實訓項目使用的軟件集成開發環境11

2.2實訓項目使用的仿真器13

2.2.1仿真器分類13

2.2.2 JTAG和SWD接口13

2.3實訓項目使用的目標板15

2.4實訓項目使用的帆板角度測量與控制裝置15

第3章專題3——CMSIS與STM32標準外設庫17

3.1 Arm Cortex微控制器軟件接口標準CMSIS 17

3.2關於STM32的標準外設庫18

3.3 STM32標準外設庫的命名規則23

第4章專題4——STM32嵌入式C語言編程的特點26

4.1宏指令的使用及其意義26

4.2 STM32嵌入式C語言編程中幾個重要關鍵字28

4.3 STM32嵌入式C語言編程的基本數據類型30

4.4結構體與指針32

4.5枚舉33

4.6 C語言編程的代碼格式34

第5章專題5——STM32F10x微控制器的系統時鐘36

5.1 STM32F10x微控制器系統時鐘的基本結構36

5.2 STM32F10x微控制器的時鐘源與配置路徑37

5.3 STM32F10x微控制器的總線時鐘40

5.4 STM32F10x微控制器系統時鐘與外設時鐘的配置方法40

5.4.1 STM32F10x微控制器系統時鐘的配置函數40

5.4.2 STM32F10x微控制器外設時鐘的控制41

第6章專題6——彩色LCD顯示42

6.1彩色LCD顯示與控制的基本原理42

6.2彩色LCD顯示器的圖形顯示方法43

6.3彩色圖片轉換成C語言數組文件的方法44

第7章專題7——字符編碼與顯示字庫46

7.1 ASCII編碼46

7.2漢字字符編碼51

7.3字符在彩色LCD屏幕上的顯示52

7.4顯示字庫與字符編碼的關係54
應用篇
第8章實訓項目1——LED閃爍58

8.1相關知識58

8.2項目實施59

8.2.1在MDK開發環境中新建項目59

8.2.2 MDK工程項目配置62

8.2.3編譯並下載運行66

第9章實訓項目2——按鍵控制LED亮滅67

9.1相關知識67

9.1.1 STM32F103微控制器通用輸入/輸出端口GPIO的基本結構67

9.1.2 GPIO的工作模式68

9.1.3 GPIO端口編程涉及的標準外設庫函數69

9.2項目實施70

9.2.1硬件電路實現70

9.2.2程序設計思路70

9.2.3程序代碼分析71

9.3拓展項目——按鍵控制LED閃爍頻率75

9.3.1項目內容75

9.3.2項目提示75

第10章實訓項目3——按鍵控制LED閃爍頻率(外部中斷) 76

10.1相關知識76

10.1.1 STM32F103微控制器的中斷系統76

10.1.2 STM32F103微控制器的外部中斷80

10.1.3外部中斷編程涉及的標準外設庫函數81

10.2項目實施81

10.2.1硬件電路設計81

10.2.2程序設計思路82

10.2.3程序代碼分析82

10.3拓展項目——LED顯示與按鍵動作的同步88

10.3.1項目內容88

10.3.2項目提示88

第11章實訓項目4——彩色LCD顯示圖片與文字89

11.1相關知識89

11.1.1 STM32F103微控制器的FSMC 89

11.1.2 FSMC編程涉及的標準外設庫函數92

11.1.3彩色LCD的驅動92

11.2項目實施93

11.2.1硬件電路設計93

11.2.2程序代碼分析93

11.3拓展項目——按鍵控製字符串移動98

11.3.1項目內容98

11.3.2項目提示98

第12章實訓項目5——按鍵控制LED閃爍頻率(定時器中斷) 99

12.1相關知識99

12.1.1 STM32F103微控制器的定時器資源99

12.1.2 STM32F103微控制器的通用定時器100

12.1.3通用定時器編程涉及的STM32標準外設庫函數101

12.2項目實施101

12.2.1硬件電路實現101

12.2.2程序設計思路101

12.2.3程序代碼分析102

12.3拓展項目——LED1呼吸燈(定時器中斷) 107

12.3.1項目內容107

12.3.2項目提示107

第13章實訓項目6——風扇轉速的PWM控制108

13.1相關知識108

13.1.1脈衝寬度調製的基本原理108

13.1.2四線製直流風扇的控制方法108

13.1.3 STM32通用定時器的PWM 109

13.1.4 STM32引腳的重映射110

13.1.5通用定時器PWM輸出編程涉及的標準外設庫函數110

13.2項目實施110

13.2.1硬件電路設計110

13.2.2程序設計思路111

13.2.3程序代碼分析111

第14章實訓項目7——帆板角度與芯片溫度檢測116

14.1相關知識116

14.1.1電阻式角度傳感器的原理116

14.1.2模擬/數字轉換的過程116

14.1.3模擬數字轉換的技術指標118

14.1.4逐次逼近型A/D轉換器118

14.1.5 STM32微控制器的模擬數字轉換器ADC 120

14.1.6 ADC編程涉及的標準外設庫函數121

14.2項目實施122

14.2.1硬件電路設計122

14.2.2程序設計思路122

14.2.3程序代碼分析123

14.3拓展項目——利用規則通道檢測芯片溫度與內部參考電壓129

14.3.1項目要求129

14.3.2項目提示129

第15章實訓項目8——帆板角度與芯片溫度檢測(DMA方式) 130

15.1相關知識130

15.1.1 DMA的基本概念130

15.1.2 STM32F103ZE微控制器的DMA 131

15.1.3 DMA編程涉及的標準外設庫函數134

15.2項目實施135

15.2.1硬件電路設計135

15.2.2程序設計思路135

15.2.3程序代碼分析135

15.3拓展項目——存儲器到存儲器(M2M)數據傳輸140

15.3.1項目內容140

15.3.2項目提示140

第16章實訓項目9——串行通信控制風扇轉速並獲取帆板角度142

16.1相關知識142

16.1.1異步串行通信142

16.1.2 STM32的通用同步/異步收發器(USART) 143

16.1.3 STM32的USART編程涉及的標準

外設庫函數144

16.2項目實施144

16.2.1硬件電路設計144

16.2.2程序設計思路145

16.2.3串行通信協議145

16.2.4程序代碼分析146

16.2.5使用串口調試助手進行操作151

16.3拓展項目——串口採用DMA方式發送字符152

16.3.1項目要求152

16.3.2項目提示152

第17章實訓項目10——Wi-Fi控制風扇轉速並獲取帆板角度154

17.1相關知識154

17.1.1 ISO/OSI參考模型與TCP/IP協議154

17.1.2 TCP/IP相關知識點155

17.1.3 Wi-Fi及其三種工作模式156

17.1.4 Wi-Fi模塊ESP8266 156

17.1.5 ESP8266模塊的控制指令157

17.2項目實施158

17.2.1硬件電路設計158

17.2.2程序設計思路159

17.2.3程序代碼分析159

17.2.4使用手機端“網絡調試助手”App進行遙控操作167

第18章實訓項目11——基於STM32的物聯網雲平台溫度檢測169

18.1相關知識169

18.1.1雲服務及其分類169

18.1 .2物聯網雲平台171

18.1.3中國移動物聯網雲平台OneNET 171

18.1.4數據傳輸過程172

18.1.5本項目使用的ESP8266模塊控制指令174

18.2項目實施175

18.2.1在OneNET雲平台上搭建設備和應用175

18.2.2程序設計思路184

18.2.3程序代碼分析184

18.2.4 在桌面端或手機端觀察雲平台的溫度數據189


作者介紹


孫光,深圳職業技術學院電信學院副教授,畢業於武漢大學電氣工程學院,碩士學位,長期從事嵌入式系統應用開發,具有豐富的企業經驗。國家級教學資源庫嵌入式技術教材組核心成員。




相關書籍

嵌入式系統開發與實踐--基於STM32F10x系列(第2版)

作者 鄭亮 王戩 袁健男 張林

2019-09-01

Embedded Systems: ARM Programming and Optimization (Paperback)

作者 Jason D. Bakos

2019-09-01

Verilog 硬體描述語言 (Verilog HDL: A Guide to Digital Design and Synthesis, 2/e)

作者 黃英叡 黃稚存

2019-09-01